package co.edu.javeriana.konigsberg.xavier.gui.bean;

import java.math.BigInteger;
import java.util.LinkedHashMap;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;

import co.edu.javeriana.konigsberg.xavier.dto.EmpresaDTO;
import co.edu.javeriana.konigsberg.xavier.servicio.EmpresaServicioLocal;

@ManagedBean(name="empresaBean")
@SessionScoped
public class EmpresaBean extends ManagerBean {

	private static final long serialVersionUID = 1L;
	
	@EJB
	private EmpresaServicioLocal empresaServicioLocal;
	
	private EmpresaDTO empresaDTO;
	
	private LinkedHashMap<String,BigInteger> empresas;
	
	private BigInteger idEmpresa;

	@PostConstruct
	public void init(){
		empresaDTO = new EmpresaDTO();
	}
	
	public void crearEmpresa(ActionEvent actionEvent) {
		empresaServicioLocal.guardarEmpresa(empresaDTO);
        addMessageInfo("Empresa Creada Satisfactoriamente");
        empresaDTO = new EmpresaDTO();
    }
	
	public LinkedHashMap<String, BigInteger> getEmpresas() {
		//if(empresas == null){
			List<EmpresaDTO> listaEmpresas = empresaServicioLocal.obtenerLista();
			empresas = new LinkedHashMap<String, BigInteger>();
			for (EmpresaDTO empresaDTO : listaEmpresas) {
				empresas.put(empresaDTO.getNombreEmpresa(), empresaDTO.getIdEmpresa());
			}
		//}
		return empresas;
	}

	public void setEmpresas(LinkedHashMap<String, BigInteger> empresas) {
		this.empresas = empresas;
	}
	
	public BigInteger getIdEmpresa() {
		return idEmpresa;
	}

	public void setIdEmpresa(BigInteger idEmpresa) {
		this.idEmpresa = idEmpresa;
	}

	public EmpresaDTO obtenerSeleccionado(){
		return empresaServicioLocal.obtenerEmpresaPorId(getIdEmpresa());
	}

	public EmpresaDTO getEmpresaDTO() {
		return empresaDTO;
	}

	public void setEmpresaDTO(EmpresaDTO empresaDTO) {
		this.empresaDTO = empresaDTO;
	}
}
